using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Widgetsphere.Northwind.DataTransfer;
using Widgetsphere.Northwind.DataTransfer.Extensions;
using Widgetsphere.Core.Util;

namespace Widgetsphere.Northwind.WCFService
{
	// NOTE: If you change the interface name "IDataService" here, you must also update the reference to "IDataService" in Web.config.
	[ServiceContract]
	public interface IDataService
	{

		#region Category Select All

		[OperationContract]
		List<CategoryDTO> GetCategoryList();

		#endregion

		#region Category Select By Primary Key

		[OperationContract]
		CategoryDTO GetCategory(int categoryid);

		#endregion

		#region Category select paged

		[OperationContract]
		PagedQueryResults<CategoryDTO> GetCategoryListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Category Select by LINQ

		[OperationContract]
		List<CategoryDTO> GetCategoryListByLINQ(string linq);

		#endregion

		#region Category Select by Column

		#endregion

		#region Category Select By Foreign Key

		#endregion

		#region Category Add Item

		[OperationContract]
		CategoryDTO PersistCategory(CategoryDTO item);

		#endregion

		#region Customer Select All

		[OperationContract]
		List<CustomerDTO> GetCustomerList();

		#endregion

		#region Customer Select By Primary Key

		[OperationContract]
		CustomerDTO GetCustomer(int userid);

		#endregion

		#region Customer select paged

		[OperationContract]
		PagedQueryResults<CustomerDTO> GetCustomerListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Customer Select by LINQ

		[OperationContract]
		List<CustomerDTO> GetCustomerListByLINQ(string linq);

		#endregion

		#region Customer Select by Column

		#endregion

		#region Customer Select By Foreign Key

		#endregion

		#region Customer Add Item

		[OperationContract]
		CustomerDTO PersistCustomer(CustomerDTO item);

		#endregion

		#region Employee Select All

		[OperationContract]
		List<EmployeeDTO> GetEmployeeList();

		#endregion

		#region Employee Select By Primary Key

		[OperationContract]
		EmployeeDTO GetEmployee(int userid);

		#endregion

		#region Employee select paged

		[OperationContract]
		PagedQueryResults<EmployeeDTO> GetEmployeeListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Employee Select by LINQ

		[OperationContract]
		List<EmployeeDTO> GetEmployeeListByLINQ(string linq);

		#endregion

		#region Employee Select by Column

		#endregion

		#region Employee Select By Foreign Key

		[OperationContract]
		List<EmployeeDTO> GetEmployeeByEmployee(int userid);

		#endregion

		#region Employee Add Item

		[OperationContract]
		EmployeeDTO PersistEmployee(EmployeeDTO item);

		#endregion

		#region EmployeeTerritory Select All

		[OperationContract]
		List<EmployeeTerritoryDTO> GetEmployeeTerritoryList();

		#endregion

		#region EmployeeTerritory Select By Primary Key

		[OperationContract]
		EmployeeTerritoryDTO GetEmployeeTerritory(int userid, string territoryid);

		#endregion

		#region EmployeeTerritory select paged

		[OperationContract]
		PagedQueryResults<EmployeeTerritoryDTO> GetEmployeeTerritoryListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region EmployeeTerritory Select by LINQ

		[OperationContract]
		List<EmployeeTerritoryDTO> GetEmployeeTerritoryListByLINQ(string linq);

		#endregion

		#region EmployeeTerritory Select by Column

		#endregion

		#region EmployeeTerritory Select By Foreign Key

		[OperationContract]
		List<EmployeeTerritoryDTO> GetEmployeeTerritoryByTerritory(string territoryid);

		[OperationContract]
		List<EmployeeTerritoryDTO> GetEmployeeTerritoryByEmployee(int userid);

		#endregion

		#region EmployeeTerritory Add Item

		[OperationContract]
		EmployeeTerritoryDTO PersistEmployeeTerritory(EmployeeTerritoryDTO item);

		#endregion

		#region Order Select All

		[OperationContract]
		List<OrderDTO> GetOrderList();

		#endregion

		#region Order Select By Primary Key

		[OperationContract]
		OrderDTO GetOrder(int orderid);

		#endregion

		#region Order select paged

		[OperationContract]
		PagedQueryResults<OrderDTO> GetOrderListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Order Select by LINQ

		[OperationContract]
		List<OrderDTO> GetOrderListByLINQ(string linq);

		#endregion

		#region Order Select by Column

		#endregion

		#region Order Select By Foreign Key

		[OperationContract]
		List<OrderDTO> GetOrderByCustomer(int userid);

		[OperationContract]
		List<OrderDTO> GetOrderByShipper(int shipperid);

		[OperationContract]
		List<OrderDTO> GetOrderByEmployee(int userid);

		#endregion

		#region Order Add Item

		[OperationContract]
		OrderDTO PersistOrder(OrderDTO item);

		#endregion

		#region OrderDetail Select All

		[OperationContract]
		List<OrderDetailDTO> GetOrderDetailList();

		#endregion

		#region OrderDetail Select By Primary Key

		[OperationContract]
		OrderDetailDTO GetOrderDetail(int orderdetailid);

		#endregion

		#region OrderDetail select paged

		[OperationContract]
		PagedQueryResults<OrderDetailDTO> GetOrderDetailListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region OrderDetail Select by LINQ

		[OperationContract]
		List<OrderDetailDTO> GetOrderDetailListByLINQ(string linq);

		#endregion

		#region OrderDetail Select by Column

		#endregion

		#region OrderDetail Select By Foreign Key

		[OperationContract]
		List<OrderDetailDTO> GetOrderDetailByOrder(int orderid);

		[OperationContract]
		List<OrderDetailDTO> GetOrderDetailByProduct(int productid);

		#endregion

		#region OrderDetail Add Item

		[OperationContract]
		OrderDetailDTO PersistOrderDetail(OrderDetailDTO item);

		#endregion

		#region Product Select All

		[OperationContract]
		List<ProductDTO> GetProductList();

		#endregion

		#region Product Select By Primary Key

		[OperationContract]
		ProductDTO GetProduct(int productid);

		#endregion

		#region Product select paged

		[OperationContract]
		PagedQueryResults<ProductDTO> GetProductListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Product Select by LINQ

		[OperationContract]
		List<ProductDTO> GetProductListByLINQ(string linq);

		#endregion

		#region Product Select by Column

		#endregion

		#region Product Select By Foreign Key

		[OperationContract]
		List<ProductDTO> GetProductByCategory(int categoryid);

		[OperationContract]
		List<ProductDTO> GetProductBySupplier(int userid);

		#endregion

		#region Product Add Item

		[OperationContract]
		ProductDTO PersistProduct(ProductDTO item);

		#endregion

		#region Region Select All

		[OperationContract]
		List<RegionDTO> GetRegionList();

		#endregion

		#region Region Select By Primary Key

		[OperationContract]
		RegionDTO GetRegion(int regionid);

		#endregion

		#region Region select paged

		[OperationContract]
		PagedQueryResults<RegionDTO> GetRegionListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Region Select by LINQ

		[OperationContract]
		List<RegionDTO> GetRegionListByLINQ(string linq);

		#endregion

		#region Region Select by Column

		#endregion

		#region Region Select By Foreign Key

		#endregion

		#region Region Add Item

		[OperationContract]
		RegionDTO PersistRegion(RegionDTO item);

		#endregion

		#region Shipper Select All

		[OperationContract]
		List<ShipperDTO> GetShipperList();

		#endregion

		#region Shipper Select By Primary Key

		[OperationContract]
		ShipperDTO GetShipper(int shipperid);

		#endregion

		#region Shipper select paged

		[OperationContract]
		PagedQueryResults<ShipperDTO> GetShipperListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Shipper Select by LINQ

		[OperationContract]
		List<ShipperDTO> GetShipperListByLINQ(string linq);

		#endregion

		#region Shipper Select by Column

		#endregion

		#region Shipper Select By Foreign Key

		#endregion

		#region Shipper Add Item

		[OperationContract]
		ShipperDTO PersistShipper(ShipperDTO item);

		#endregion

		#region Supplier Select All

		[OperationContract]
		List<SupplierDTO> GetSupplierList();

		#endregion

		#region Supplier Select By Primary Key

		[OperationContract]
		SupplierDTO GetSupplier(int userid);

		#endregion

		#region Supplier select paged

		[OperationContract]
		PagedQueryResults<SupplierDTO> GetSupplierListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Supplier Select by LINQ

		[OperationContract]
		List<SupplierDTO> GetSupplierListByLINQ(string linq);

		#endregion

		#region Supplier Select by Column

		#endregion

		#region Supplier Select By Foreign Key

		#endregion

		#region Supplier Add Item

		[OperationContract]
		SupplierDTO PersistSupplier(SupplierDTO item);

		#endregion

		#region SystemUser Select All

		[OperationContract]
		List<SystemUserDTO> GetSystemUserList();

		#endregion

		#region SystemUser Select By Primary Key

		[OperationContract]
		SystemUserDTO GetSystemUser(int userid);

		#endregion

		#region SystemUser select paged

		[OperationContract]
		PagedQueryResults<SystemUserDTO> GetSystemUserListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region SystemUser Select by LINQ

		[OperationContract]
		List<SystemUserDTO> GetSystemUserListByLINQ(string linq);

		#endregion

		#region SystemUser Select by Column

		#endregion

		#region SystemUser Select By Foreign Key

		#endregion

		#region SystemUser Add Item

		#endregion

		#region Territory Select All

		[OperationContract]
		List<TerritoryDTO> GetTerritoryList();

		#endregion

		#region Territory Select By Primary Key

		[OperationContract]
		TerritoryDTO GetTerritory(string territoryid);

		#endregion

		#region Territory select paged

		[OperationContract]
		PagedQueryResults<TerritoryDTO> GetTerritoryListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Territory Select by LINQ

		[OperationContract]
		List<TerritoryDTO> GetTerritoryListByLINQ(string linq);

		#endregion

		#region Territory Select by Column

		#endregion

		#region Territory Select By Foreign Key

		[OperationContract]
		List<TerritoryDTO> GetTerritoryByRegion(int regionid);

		#endregion

		#region Territory Add Item

		[OperationContract]
		TerritoryDTO PersistTerritory(TerritoryDTO item);

		#endregion

	}

}
